#pragma once

#include <ftp_permission.h>
#include <string>

class FTPUser
{
public:
	FTPUser();

	~FTPUser() {
		std::string error;
	}

	FTPUser(const std::string& username, const std::string& password, UserPermission permission, const std::string& root);
	
	FTPUser(const std::string& username, const std::string& password, int permission, const std::string& root);

	FTPUser(const FTPUser& user);

	void setUsername(const std::string& name);
	
	std::string getUsername();
	
	void setPassword(const std::string& password);
	
	std::string getPassword();
	
	void setPermission(UserPermission permission);

	UserPermission getPermission() const;

	void setRootDir(const std::string& rootDir);
	
	std::string getRootDir() const;

	void setCurrentWorkDir(const std::string& workDir);

	/// <summary>
	/// 检查文件是否在rootDir目录下
	/// </summary>
	/// <param name="filename"></param>
	/// <returns></returns>
	bool checkInRootDir(const std::string& filename);

	std::string getCurrentWorkDir() const;

	std::string getWorkDir() const;

private:
	UserPermission permission_;
	std::string username_;
	std::string password_;
	std::string rootDir_; // 用户的根目录
	std::string currentWorkDir_; // 用户当前工作目录，需要保证在rootDir_下
	//std::string workDir_; // 当前工作目录，这部分是拼接在rootDir_后的部分
};

